package com.practice.springboot_01_zwj.mapper;

import com.practice.springboot_01_zwj.entity.SubTask;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface SubTaskMapper {
    int insert(SubTask subTask);
    int batchInsert(List<SubTask> subTasks);
    int update(SubTask subTask);
    List<SubTask> selectByMainId(Integer mainId);
    int countIncompleteSubtasks(Integer mainId);
    SubTask selectById(Integer subId);
    // 根据ID删除子任务
    /**
     * 根据ID删除子任务
     * @param subId 子任务ID
     * @return 影响行数
     */
    int deleteById(Integer subId);

    /**
     * 根据主任务ID查询所有子任务
     * @param mainId 主任务ID
     * @return 子任务列表
     */
    List<SubTask> findByMainId(Integer mainId);
    List<SubTask> selectByMainIdsAndCondition(
            @Param("mainIds") List<Integer> mainIds,
            @Param("subBelonging") String subBelonging,
            @Param("subExecutor") String subExecutor
    );
    List<SubTask> selectByMainTaskType(
            @Param("taskType") String taskType,
            @Param("subName") String subName);
}
